package com.ssy.lingxi.workflow.config;

import org.springframework.cache.Cache;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.interceptor.CacheErrorHandler;
import org.springframework.context.annotation.Bean;


/**
 * 在使用了Spring缓存注解时，当Redis故障，会导致代码不能从数据库读取数据。
 * 所以要自定义一个CachingConfigurerSupport的bean，目的就是为了当使用了缓存注解的方法在Redis故障时，可以正常执行方法内的代码
 * @author 万宁
 * @version 2.0.0
 * @date 2021-04-28
 */
//@Configuration
public class RedisCacheConfig extends CachingConfigurerSupport {

    @Bean
    @Override
    public CacheErrorHandler errorHandler() {
        return new CacheErrorHandler() {
            @Override
            public void handleCacheGetError(RuntimeException e, Cache cache, Object key) {
            }

            @Override
            public void handleCachePutError(RuntimeException e, Cache cache, Object key, Object value) {
            }

            @Override
            public void handleCacheEvictError(RuntimeException e, Cache cache, Object key) {

            }

            @Override
            public void handleCacheClearError(RuntimeException e, Cache cache) {
            }
        };
    }
}

